home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / apidev / alogin.exe / LOGIN.TXT < prev    next >
Text File  |  1993-06-21  |  5KB  |  88 lines

  1.                    Keyed Login Object Modules
  2.                      Last Update: 02/03/92
  3.  
  4.  
  5. This document describes the functions contained in the mLOGINx.OBJ files.  These functions allow you to perform a keyed login to a NetWare 3.x file server as well as change or verify a bindery object's password.  These OBJs can be linked with languages using the Microsoft segment naming conventions.
  6.  
  7. Object Naming Convention:
  8.  
  9.     mLOGIN.OBJ
  10.      m is one of S,M,C or L for Small, Medium, Compact and Large
  11.  
  12. The VAP objects have a 'v' appended to the root name.  i.e.
  13.  
  14.     sLOGINv.OBJ - Small Model VAP object
  15.  
  16. IMPORTANT NOTES:
  17.  
  18. These functions all assume that you are attached, and the preferred connection is set to the server that you want to login to or change the password on.  You must perform these APIs before calling the functions in this object, or they will not work.
  19.  
  20. All Functions require approximately 220 bytes of stack space for local variables.  This does not include the overhead for calling DOS or the shell via Int 21h.  You must provide sufficient stack space for this. VAP users need to allow for overhead of the NetWareShellServices API.
  21.  
  22. Objects are provided for the SMALL, MEDIUM, COMPACT and LARGE memory models.  There are three functions included in each object module:
  23.  
  24. _AsmLoginToFileServer           (ObjName, ObjType, ObjPassword)
  25. _AsmVerifyBinderyObjectPassword (ObjName, ObjType, ObjPassword)
  26. _AsmChangeBinderyObjectPassword 
  27.                      (ObjName, ObjType, ObjOldPass, ObjNewPass)
  28.  
  29. Where:
  30.         ObjName     - A pointer to the Object's Name
  31.         ObjType     - The Object's Type i.e. 1 for USER, ...
  32.         ObjPassword - A pointer to the Object's Password.
  33.         ObjOldPass  - A pointer to the Object's old Password.
  34.         ObjNewPass  - A pointer to the Object's new Password.
  35.  
  36. NOTE:
  37. All pointers are model dependant. i.e. 2 byte for small and medium model or 4 byte for compact and large.
  38.  
  39. Also, a global variable called __AsmDataElement has been declared.  __AsmDataElement is used to establish DS addressability BEFORE calling any of the other APIs.  This is ONLY needed if DS is NOT pointing to DGROUP.  If you will be calling the APIs without DS pointing to DGROUP, you need to establish addressability first. To do this, just "MOV AX,SEG __AsmDataElement", and "MOV DS,AX" before calling the API.  Be sure to save DS for your program!  All functions return a status code in the AX register.  See your System Calls Documentation for a description of the return codes.
  40.  
  41. Only registers SI, DI, BP, DS and ES are preserved.  All others are destroyed.
  42.  
  43. To call any of these functions, simply push the parameters onto the stack in the reverse order i.e. right to left.  Be sure to pass the correct pointer size!  Following are samples for calling a small and large model function.
  44.  
  45.       ;Small Model Example
  46.          mov     ax,offset DGROUP:Password   ; user password
  47.          push    ax
  48.          mov     ax,1                        ; type user
  49.          push    ax
  50.          mov     ax,offset DGROUP:Username   ; user name
  51.          push    ax
  52.          call    near ptr _AsmLoginToFileServer
  53.  
  54.       ;Large Model Example
  55.           push    ds
  56.           mov     ax,offset DGROUP:Password   ; user password
  57.           push    ax
  58.           mov     ax,1                        ; type user
  59.           push    ax
  60.           push    ds
  61.           mov     ax,offset DGROUP:Username   ; user name
  62.           push    ax
  63.           call    far ptr _AsmLoginToFileServer
  64.  
  65.  
  66. *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  67.                         Special Info for VAP users
  68. =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
  69.  
  70. This section applies only to users of the VAP routines.
  71.  
  72. You must provide a routine in your prelude module called:
  73.  
  74.     '_CallNetWareShellServices'
  75.  
  76. which will perform a call to the NetWareShellServices entry point as specified in the VAPs Header.  Following is a sample of what it must look like:
  77.  
  78. _CallNetWareShellServices  proc             ; for login.obj
  79.         public  _CallNetWareShellServices
  80.         push    ds             ; save ds
  81.         xchg    si,bx          ; on entry si:bx pointer to
  82.         mov     ds,bx          ;  request, make ds:si instead
  83.         call    dword ptr cs:[NetWareShellServices]; call OS
  84.         pop     ds             ; restore ds
  85.         cbw                    ; return code in AX
  86.         ret
  87. _CallNetWareShellServices  endp  ; for login.obj
  88.